※以下內容皆是新手撰寫,內容可能不完全正確
轉眼間就發到第十五天了呢,一日一顏文字 :D 看得懂英文內容的文章還是很實用的,畢竟網路上好多優質的免費教學跟補充資料是英文的,不看很可惜(即使偶爾會碰到幾個不熟悉的單字)。有些東西沒有一個確切的中文翻譯,於是我盡量用好懂且合理(?)的方法翻了。
今天講的是C#裡的 方法(methods) ,之前的許多範例和小練習中都有用到,只是沒有詳細說明方法的特質跟用處。方法是可以執行某動作/工作的一組敘述,C#寫出的每個程式至少都會有個名為Main( )的方法在某類別(class)裡面。用一個方法,得 (1)定義方法 , (2)呼叫那個方法 。
用C#定義方法
定義一個方法 = 宣告方法的結構。以下面兩個方法為例,講方法的幾個元素:
public void numbers()
{
height = 5;
width = 5;
length = 5;
}
public int value()
{
return height * length * width;
}
存取規格符(access specifier) :前一篇講過的public、private那些,影響其他類別存取某方法的權限;這邊兩個都是public。
傳回型別/屬性(return type):方法可能傳回一個值,傳回型別則是標示傳回值的屬性。若方法不會傳回任何值,就標示void。這裡numbers( )的傳回屬性是void,value( )的傳回屬性是int。
方法名稱(method name) :方法的名稱,大小寫有差,一個類別裡不能有兩個相同的方法名稱。這裡的兩個方法名稱分別是numbers跟value。
參數串列(parameter list) :參數寫在方法名稱後面的括號裡,用來表示參數的次序、屬性及數量,而括號裡面也可以什麼都不寫,像上面的numbers( )跟value( )。
方法本體(method body) :方法執行動作的內容,如value( )裡的return height * length * width;。
用C#呼叫方法
以下是如何在別的類別中呼叫其他類別的方法;calcube類別裡呼叫剛剛的numbers( ),程式就會跑出numbers( )這個發法負責處理(?)的東西。
class calcube
{
static void Main(string[] args)
{
Cube c = new Cube();
c.numbers();
c.calc();
Console.ReadLine();
}
}
遞迴式呼叫方法(recursive method call) :一個方法也可以呼叫自己,像這樣:
public int value( )
{
value y = new value( );
}
參數的傳遞(passing parameters to a method)
三個把參數遞給方法的方法:
public int valueP(int a, int b)
public int referenceP(ref int j, ref int k)
public void outputP(out int z)
累啊,話說今天颱風天(ˊˇˋ) 下一篇要講的是可為null的型別喔~
參考資料:
(a) Tutorialspoint; C# - Methods
https://www.tutorialspoint.com/csharp/csharp_methods.htm